/*
 * @Author: daniel_du dll_2018@126.com
 * @Date: 2022-05-09 09:33:28
 * @LastEditors: daniel_du dll_2018@126.com
 * @LastEditTime: 2022-05-09 16:07:57
 * @FilePath: /safe_transmission_platform/src/server/mysqlop.h
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#ifndef __MYSQLOP_H__
#define __MYSQLOP_H__

#include <string>
#include <vector>
#include <memory>
#include "mysqldb.h"
#include <mutex>

//数据库操作的具体类 封装想用使用的mysql操作
class MysqlOp
{
public:
    using ptr = std::shared_ptr<MysqlOp>;
    MysqlOp(const daniel::MysqlInfo &info);

    bool connectToDB();
    //判定是否是网点
    bool isStation(const std::string &stationNum);
    void updateKey(const std::string& stationID, const std::string& publicKey, const std::string& aesKey);
    void setMysqlInfo(const daniel::MysqlInfo& info)
    {
        m_mysqldb.setMysqlInfo(info);
    }
    daniel::MysqlInfo getMysqlInfo()
    {
        return m_mysqldb.getMysqlInfo();
    }
private:
    MysqlOp(const MysqlOp&)=delete;
    MysqlOp operator=(const MysqlOp& op)=delete;

private:
    daniel::MysqlDB m_mysqldb;
    std::mutex m_mutex;
};

#endif
